import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// 实现 @等于./ src--绝对路径
import path, { resolve } from 'path';


/** 路径查找 */
const pathResolve = (dir: string): string => {
	return resolve(__dirname, '.', dir);
};

/** 设置别名 */
const alias: Record<string, string> = {
	'@': pathResolve('src'),
	'@build': pathResolve('build')
};


// https://vite.dev/config/
export default defineConfig({

  css: {
		preprocessorOptions: {
			scss: {
			    // element-plus主题色配置相关--引入index.scss文件
				additionalData: `@use "@/assets/element-style.scss" as *;`
			}
		}
	},

  plugins: [
    vue(),
    // 以下两项为配置Element-plus按需自动引入
		AutoImport({
			resolvers: [
			   // element-plus主题色配置相关--下面这句importStyle一定要写，不要写个空对象在这儿，否则就会不生效
				ElementPlusResolver({
					// 自动引入修改主题色添加这一行，使用预处理样式，不添加将会导致使用ElMessage，ElNotification等组件时默认的主题色会覆盖自定义的主题色
					importStyle: 'sass'
				})
			]
		}),
		Components({
			resolvers: [
			    // element-plus主题色配置相关--下面这句importStyle一定要写，不要写个空对象在这儿，否则就会不生效
				ElementPlusResolver({
					// 自动引入修改主题色添加这一行，使用预处理样式
					importStyle: 'sass'
				})
			]
		}),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
})
